-- *****************************************************************
-- CISCO-LES-MIB.my: LES MIB file.
--
-- July 1995, Chris Young
--
-- Copyright (c) 1995-1997, 1998 by cisco Systems, Inc.
-- All rights reserved.
-- *****************************************************************
--
 CISCO-LES-MIB DEFINITIONS ::= BEGIN

 IMPORTS
        ciscoMgmt                       FROM CISCO-SMI
        MODULE-IDENTITY, OBJECT-TYPE,
        Counter32, Integer32            FROM SNMPv2-SMI 
        AtmLaneAddress                  FROM LAN-EMULATION-CLIENT-MIB
        CiscoVpiInteger, 
        CiscoVciInteger                 FROM CISCO-BUS-MIB
        MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF
        RowStatus, DisplayString, 
        MacAddress, TimeStamp           FROM SNMPv2-TC;

 ciscoLesMIB     MODULE-IDENTITY
        LAST-UPDATED "9603071030Z"
        ORGANIZATION "Cisco Systems Inc."
        CONTACT-INFO
                " Cisco Systems Inc."
        DESCRIPTION
                " The MIB module for the management of LANE Service 
                in Cisco devices."
        ::= { ciscoMgmt 39 }
        
 ciscoLesMIBObjects OBJECT IDENTIFIER ::= { ciscoLesMIB 1 }

 les      OBJECT IDENTIFIER ::= { ciscoLesMIBObjects 1 }
 leClient   OBJECT IDENTIFIER ::= { ciscoLesMIBObjects 2 }
 register OBJECT IDENTIFIER ::= { ciscoLesMIBObjects 3 }

 lesTable OBJECT-TYPE
        SYNTAX     SEQUENCE OF LesEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                " A (conceptual) table containing all instances of LESs
                on this device."
        ::= { les 1 }

 lesEntry OBJECT-TYPE
        SYNTAX     LesEntry 
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                " An entry (conceptual row) in the lesTable."
        INDEX     { lesElanName, lesIndex }
        ::= { lesTable 1 }

 LesEntry ::= SEQUENCE {
        lesElanName             DisplayString,
        lesIndex                Integer32,
        lesAtmAddrSpec          AtmLaneAddress,
        lesAtmAddrMask          OCTET STRING,
        lesAtmAddrActual        AtmLaneAddress,
        lesIfIndex              Integer32,
        lesSubIfNum             Integer32,
        lesColocBusAtmAddrSpec  AtmLaneAddress,
        lesColocBusAtmAddrMask  OCTET STRING,
        lesColocBusAtmAddrActl  AtmLaneAddress,
        lesUpTime               TimeStamp,
        lesLanType              INTEGER,
        lesMaxFrm               INTEGER,
        lesJoinTimeout          INTEGER,
        lesLecsAtmAddr          AtmLaneAddress,
        lesControlDistVpi       CiscoVpiInteger,
        lesControlDistVci       CiscoVciInteger,
        lesOperStatus           INTEGER,
        lesAdminStatus          INTEGER,
        lesStatus               RowStatus,
        lesSegmentID            INTEGER
 }

 lesElanName OBJECT-TYPE
        SYNTAX     DisplayString (SIZE (1..32))
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                " The name associated with the emulated LAN which this
                LES services."
        ::= { lesEntry 1 }

 lesIndex OBJECT-TYPE
        SYNTAX     Integer32 (1..2147483647)
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                " A  unique  identifier for   this LES servicing  this
                ELAN.  This value must remain constant while the entry
                is in existence and during the  operation of the agent
                (i.e.   It is allowed to  change  after reboot).  For 
                implementations  that do not allow  more  than one LES
                entity per ELAN per device, it is sufficient to always
                report 1 for  this object and  to only accept one  for
                row creation."
        ::= { lesEntry 2 }

 lesAtmAddrSpec OBJECT-TYPE
        SYNTAX     AtmLaneAddress
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
                " The  ATM address of the   designated LES.  Note that
                setting this object  will  have  the side  effect   of
                reinitializing  the  LES and consequently dropping all
                clients connected  to  it.   If  this  object is   not
                specified    at row creation  time  then  the LES will
                choose a value for itself and attempt to register with
                the  switch    with  that value.   If    an address is
                specified which is  not acceptable to the  switch then
                the  lesOperStatus  will   remain  inactive  until  an
                acceptable address is set."
        ::= { lesEntry 3 }

 lesAtmAddrMask OBJECT-TYPE
        SYNTAX     OCTET STRING (SIZE (0 | 20))
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
                "  An  address    mask   that  when  used   with   the
                lesAtmAddrSpec  specifies the portion  of the LES' ATM
                address that is desired  to be configured.  Note  that
                setting   this    object   will     result     in  the
                reinitialization of  the LES,consequently dropping all
                clients connected to it.  Note that this object cannot
                be set at row  creation time without also  supplying a
                value for the  lesAtmAddrSpec object.  If the LES  ATM
                address  is omitted at creation  time then this object
                defaults  to  the  value of   all  zeros (none  of the
                lesAtmAddrSpec value   is relevant). If  the  LES  ATM
                address is specified at  creation time but this object
                omitted, then this object defaults to the value of all
                ones (all of the lesAtmAddrSpec is relevant)."
        ::= { lesEntry 4 }

 lesAtmAddrActual OBJECT-TYPE
        SYNTAX     AtmLaneAddress
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                " The resultant ATM address  in use by  the LES.  This
                object is a product of the specified ATM address, mask
                and interaction with the switch via the ILMI."
        ::= { lesEntry 5 }      

 lesIfIndex OBJECT-TYPE
        SYNTAX     Integer32
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
                "  The interface that a LES will receive control
                connections on. The value specified for this object
                must equate to a value of ifIndex in the ifTable.  The
                interface  will be for that particular ATM port (the
                physical interface, not a logical layer on top of
                it). This object can only be specified upon row
                creation and cannot be altered there after." 
        ::= { lesEntry 6 } 

 lesSubIfNum OBJECT-TYPE
        SYNTAX     Integer32
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
                " Specifies   the  sub-interface number that  the  LES
                will reside on.  This sub-interface may be shared with
                a LEC or  BUS of the same ELAN  but is not required to
                do  so.  If no value  is  specified for this object at
                row creation time, then a sub-interface will be chosen
                by  the agent. This   object may only be  specified at
                row creation time and cannot be altered thereafter."  
        ::= { lesEntry 7 }

 lesColocBusAtmAddrSpec OBJECT-TYPE
        SYNTAX     AtmLaneAddress
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
                " For  those   implementations who  do  not  allow the
                separate creation/deletion of   the LES and   BUS this
                object allows the operator  to specify the ATM address
                of the BUS at  LES creation time.  For implementations
                that allow separate  process  creation this object  is
                optional.   Otherwise this is  the  ATM address of the
                designated BUS.   Note that setting  this object  will
                have the side  effect  of reinitializing the  BUS  and
                consequently dropping all clients connected to it.  If
                this object is not specified at row creation time then
                the BUS will choose a value for  itself and attempt to
                register  with the  switch  with  that value.  If   an
                address is  specified which is   not acceptable to the
                switch  then the  busOperStatus will  remain  inactive
                until an acceptable address is set."
        ::= { lesEntry 8 } 

 lesColocBusAtmAddrMask OBJECT-TYPE
        SYNTAX     OCTET STRING (SIZE (0 | 20))
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
                "  An   address   mask   that  when   used  with   the
                lesColocatedBusAtmAddr specifies  the portion  of  the
                BUS'  ATM address desired   by management.   Note that
                setting this  object  will  have the  side  effect  of
                reinitializing  the BUS and  consequently dropping all
                clients connected to it.  Note that this object cannot
                be set  at row creation  time without also supplying a
                value   for the lesColocBusAtmAddrSpec  object. If the
                BUS ATM address is omitted  at creation time then this
                object defaults to the value of all zeros (none of the
                lesColocBusAtmAddrSpec  value is relevant). If the BUS
                ATM  address is specified   at creation time but  this
                object omitted, then this object defaults to the value
                of  all ones  (all  of the   lesColocBusAtmAddrSpec is
                relevant)."
        ::= { lesEntry 9 }

 lesColocBusAtmAddrActl OBJECT-TYPE
        SYNTAX     AtmLaneAddress
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                " The ATM address in use by the BUS.  This object is a
                product of  the specified  ATM  address, its  mask and
                interaction with the switch through the ILMI."
        ::= { lesEntry 10 }

 lesUpTime OBJECT-TYPE
        SYNTAX     TimeStamp
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                "   The  value of   sysUpTime  when  this   LES became
                activated."
        ::= { lesEntry 11 }

 lesLanType OBJECT-TYPE
        SYNTAX     INTEGER { dot3(1), dot5(2) }
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
                " The type of legacy LAN that this LES emulates."
        DEFVAL     { dot3 }
        ::= { lesEntry 12 }
        
 lesMaxFrm OBJECT-TYPE
        SYNTAX     INTEGER { dot3    (1516), 
                             tr4Mb   (4544), 
                             rfc1626 (9234), 
                             tr16Mb  (18190) }
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
                " The maximum frame  size that the specified  LAN type
                can accept."
        DEFVAL     { dot3 }
        ::= { lesEntry 13 }

 lesJoinTimeout OBJECT-TYPE
        SYNTAX     INTEGER (10..300)
        UNITS      "seconds"
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
                " The number  of seconds  that must  elapse before a  
                Join request can be timed-out."
        DEFVAL     { 120 }
        ::= { lesEntry 14 }

 lesLecsAtmAddr OBJECT-TYPE
        SYNTAX     AtmLaneAddress
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
                " The  ATM address  associated with  the LECS  used by
                this LES. If no  LECS is in use  by the LES  then this
                object will have the value of all 0's (i.e 0x0000...).
                If it is  desired that the LES get  the address of the
                LECS  through the ILMI  then this  object may be  left
                unspecified at row activation.  If the ILMI fails then
                the lesOperStatus will  be inactive(2) and this column
                still not present."
        ::= { lesEntry 15 }

 lesControlDistVpi OBJECT-TYPE
        SYNTAX     CiscoVpiInteger
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                "  The   virtual  path  identifier   of   the  control
                distribute VCC to all clients, if it exits. "
        ::= { lesEntry 16 }

 lesControlDistVci OBJECT-TYPE
        SYNTAX     CiscoVciInteger
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                " The  virtual  channel  identifier   of  the  control
                distribute VCC to all clients, if it exists. "
        ::= { lesEntry 17 }

 lesOperStatus OBJECT-TYPE
        SYNTAX     INTEGER { active(1), inactive(2) } 
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                " This   object reflects the  actual state  of the LES
                which may   differ from   that of   the lesAdminStatus
                object.    This   can   occur    when    the interface
                ifOperStatus  is     'down'  but  the    corresponding
                lesAdminStatus is 'active'."
        DEFVAL     { active } 
        ::= { lesEntry 18 }

 lesAdminStatus OBJECT-TYPE
        SYNTAX     INTEGER { active(1), inactive(2) }
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
                "  The  desired  state   of  the  designated   LES  as
                prescribed by the operator. The  actions of the  agent
                will, if at  all  possible, eventually  result  in the
                desired state being  reflected in  the lesOperStatus."
        ::= { lesEntry 19 } 

 lesStatus OBJECT-TYPE
        SYNTAX     RowStatus
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
                " The status of this entry (conceptual row).  This row
                cannot be set to active  until an appropiate value  of
                lesIfIndex has been specified. "
        ::= { lesEntry 20 }

 lesSegmentID OBJECT-TYPE
        SYNTAX     INTEGER (0..4095)
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
                " The segment ID of the emulated LAN this LES is
                servicing.  This object is only valid if the
                lesLanType is dot5(2)."
        ::= { lesEntry 21 }

 lesStatsTable OBJECT-TYPE
        SYNTAX     SEQUENCE OF LesStatsEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                " A (conceptual) table of statistics associated with
                LES instances on the device."
        ::= { les 2 }

 lesStatsEntry OBJECT-TYPE
        SYNTAX     LesStatsEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                " A (conceptual) row in the lesStatsTable which
                corresponds to the statistics kept by a particular
                instance of a LES."
        INDEX     { lesElanName, lesIndex }
        ::= { lesStatsTable 1 }

 LesStatsEntry ::= SEQUENCE {
        lesInErrors             Counter32,
        lesInErrorLastLec       AtmLaneAddress,
        lesInFlushReplies       Counter32,
        lesInJoinReqs           Counter32,
        lesOutJoinFails         Counter32,
        lesJoinLastFailCause    Integer32,
        lesJoinLastFailLec      AtmLaneAddress,
        lesOutConfigReqs        Counter32,
        lesInConfigResps        Counter32,
        lesInConfigFails        Counter32,
        lesInRegisReqs          Counter32,
        lesOutRegisFails        Counter32,
        lesRegisLastFailCause   Integer32,
        lesRegisLastFailLec     AtmLaneAddress,
        lesInUnregReqs          Counter32,
        lesInLearpUcasts        Counter32,
        lesInLearpBroadcasts    Counter32,
        lesOutLearpFwd          Counter32,
        lesInLearpResps         Counter32,
        lesInNarpReqs           Counter32,
        lesInTopolReqs          Counter32
}

 lesInErrors OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                " The number of frames  received by the LES which were
                either malformed  or did  not follow standard protocol
                (i.e. receiving   a  LE-ARP request   for a  multicast
                address)."
        ::= { lesStatsEntry 1 }

 lesInErrorLastLec OBJECT-TYPE
        SYNTAX     AtmLaneAddress
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                " The ATM address of the LE client whose last frame to
                the LES resulted in  an increment  to the  lesInErrors
                counter."
        ::= { lesStatsEntry 2 }

 lesInFlushReplies OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                " The number of Flush  replies that have been received
                by the LES and forwarded onto its clients."
        ::= { lesStatsEntry 3 }

 lesInJoinReqs OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                " The number  of LE_JOIN_REQUESTs received by this LES
                since activation."
        ::= { lesStatsEntry 4 }

 lesOutJoinFails OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                "    The  number  of   rejection     LE_JOIN_RESPONSEs
                transmitted by this LES since activation."
        ::= { lesStatsEntry 5 }

 lesJoinLastFailCause OBJECT-TYPE
        SYNTAX     Integer32 
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                " The cause for the transmission of the last rejection
                LE_JOIN_RESPONSE.  This   is the value  of the  status
                field  within the rejection  response.   If the server
                has never issued a rejection response then this object
                will have the value of 0."
        ::= { lesStatsEntry 6 }

 lesJoinLastFailLec OBJECT-TYPE
        SYNTAX     AtmLaneAddress
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                "   The  ATM  address   of   the  client   whose  last
                LE_JOIN_REQUEST resulted  in a   rejection  by    this
                server.  If the  server  has never issued a  rejection
                response then this object  will have the value of  all
                0's (i.e. 0x000...)."
        ::= { lesStatsEntry 7 }

 lesOutConfigReqs OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                " The number of LE_CONFIGURE_REQUESTs sent by this LES
                since activation."
        ::= { lesStatsEntry 8 }

 lesInConfigResps OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only    
        STATUS     current
        DESCRIPTION
                "  The  number  of successful   LE_CONFIGURE_RESPONSEs
                received by this LES since activation."
        ::= { lesStatsEntry 9 } 

 lesInConfigFails OBJECT-TYPE 
        SYNTAX    Counter32
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                "   The   number of   rejection LE_CONFIGURE_RESPONSEs
                received by this LES since activation."
        ::= { lesStatsEntry 10 }
 
 lesInRegisReqs OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                " The  number of LE_REGISTER_REQUESTs received by this
                LES since activation."
        ::= { lesStatsEntry 11 }

 lesOutRegisFails OBJECT-TYPE 
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                "  The   number of  rejection    LE_REGISTER_RESPONSEs
                transmitted by this LES since activation."
        ::= { lesStatsEntry 12 }

 lesRegisLastFailCause OBJECT-TYPE
        SYNTAX     Integer32 
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                " The cause for the transmission of the last rejection
                LE_REGISTER_RESPONSE.  This  variable has the value of
                the status field  within  the  last  failure  register
                response.  If the  server  has never   issued a failed
                registration response then   the value of this  object
                shall be 0."
        ::= { lesStatsEntry 13 }

 lesRegisLastFailLec OBJECT-TYPE
        SYNTAX     AtmLaneAddress
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                "   The   ATM  address  of    the  client whose   last
                LE_REGISTER_REQUEST to  this LES resulted  in failure.
                If the server  has never issued a  failed registration
                response  then the value  of this  object shall be all
                0's (i.e. x0000...)."
        ::= { lesStatsEntry 14 }

 lesInUnregReqs OBJECT-TYPE 
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                " The number  of valid LE_UNREGISTER_REQUESTs received
                by this LES since activation."
        ::= { lesStatsEntry 15 }

 lesInLearpUcasts OBJECT-TYPE 
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                "   The number  of  LE_ARP_REQUESTs  received  by this
                LES  since   activation and  responded   to  directly.
                This applies   to all   LE_ARP requests for  addresses
                registered by  LE clients with  the LES.  Note  that a
                LES is not required to answer LE_ARP requests directly
                and  may  forward  the   request  on  to the   control
                distribute regardless.  This counter does not apply to
                those  requests the    BUS (the broadcast   address)."
        ::= { lesStatsEntry 16 }

 lesInLearpBroadcasts OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                " The number of LE_ARP_REQUEST received by the LES for
                the broadcast address.  These requests are responded
                to with the BUS' ATM address."
        ::= { lesStatsEntry 17 }

 lesOutLearpFwd OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                " The number of LE_ARP_REQUEST frames forwarded onto
                the control distribute VC."
        ::= { lesStatsEntry 18 }

 lesInLearpResps OBJECT-TYPE 
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                " The number of LE_ARP_RESPONSEs received by this LES
                and forwarded onto the control distribute. "
        ::= { lesStatsEntry 19 }

 lesInNarpReqs OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                " The number of  Negative LE_ARP requests  received by
                this LES and  forwarded  on to the control  distribute
                VC."
        ::= { lesStatsEntry 20 }

 lesInTopolReqs OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                " The number of  LE_TOPOLOGY_REQUESTs received by this
                LES since activation."
        ::= { lesStatsEntry 21 }


 lesClientTable OBJECT-TYPE
        SYNTAX     SEQUENCE OF LesClientEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                " A (conceptual) table listing the clients associated
                with a LES.  Note that the local or network management
                will not create or destroy rows in this table but
                may only inspect what LECs are currently joined
                with the LES."
        ::= { leClient 1 }

 lesClientEntry OBJECT-TYPE
        SYNTAX     LesClientEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                " An entry (conceptual) row that denotes a client that
                is joined with the LES."
        INDEX      { lesElanName, lesIndex, lesClientLecid }
        ::= { lesClientTable 1 }

 LesClientEntry ::= SEQUENCE {
        lesClientLecid          INTEGER,
        lesClientAtmAddr        AtmLaneAddress,
        lesClientState          INTEGER,
        lesClientIfIndex        Integer32,
        lesClientControlVpi     CiscoVpiInteger,
        lesClientControlVci     CiscoVciInteger,
        lesClientStatus         RowStatus
 }
 
 lesClientLecid OBJECT-TYPE
        SYNTAX     INTEGER (0001..65279) -- 0x0001 to 0xFFEF
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                " The LECID selected for an LEC by the LES during the JOIN
                phase."
        ::= { lesClientEntry 1 }

 lesClientAtmAddr OBJECT-TYPE
        SYNTAX     AtmLaneAddress
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                " The primary ATM address associated with the designated LEC."
        ::= { lesClientEntry 2 }

 lesClientState OBJECT-TYPE
        SYNTAX     INTEGER { connected(1),   
                             joinRecv(2),    
                             verify(3),
                             addLec(4),
                             busConnect(5),
                             operational(6),
                             terminating(7) }
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                " The current state of the LEC.  Note that busConnect is only a
                monitorable state if the BUS is colocated with the LES.  In the
                event that it is not then the client state should proceed 
                immediately to operational within this table (though it may not
                do so in actuality). Note that there is no relation between the
                client's internal state and the state reflected here.  The 
                state here is only the LES's observed state of the LEC."
        ::= { lesClientEntry 3 }

 lesClientIfIndex OBJECT-TYPE
        SYNTAX     Integer32
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                " The interface of the bi-directional control direct connection
                between the LEC and LES."
        ::= { lesClientEntry 4 }

 lesClientControlVpi OBJECT-TYPE
        SYNTAX     CiscoVpiInteger
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                " The VPI of the bi-directional control direct connection 
                between the LEC and LES."
        ::= { lesClientEntry 5 }

 lesClientControlVci OBJECT-TYPE
        SYNTAX     CiscoVciInteger 
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                " The VCI of the bi-directional control direct connection 
                between the LEC and LES."
        ::= { lesClientEntry 6 }

 lesClientStatus OBJECT-TYPE
        SYNTAX     RowStatus
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
                " The status of the (conceptual) row.  Note that this
                object may only return the active(1) state.  The only
                value which may be written to this object is the
                destroy(6) state which will cause the client to be
                dropped from the ELAN."
        ::= { lesClientEntry 7 }

 lesMacRegTable OBJECT-TYPE
        SYNTAX     SEQUENCE OF LesMacRegEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                " A (conceptual) table of MAC addresses registered with the LES
                by its clients."
        ::= { register 1 }

 lesMacRegEntry OBJECT-TYPE
        SYNTAX     LesMacRegEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION 
                " An entry (conceptual row) that denotes a registered
                MAC address and the ATM address that corresponds to it."
        INDEX { lesElanName, lesIndex, lesMacRegMacAddress } 
        ::= { lesMacRegTable 1 }

 LesMacRegEntry ::= SEQUENCE {
        lesMacRegMacAddress     MacAddress,
        lesMacRegAtmAddr        AtmLaneAddress,
        lesMacRegLecid          INTEGER
 }

 lesMacRegMacAddress OBJECT-TYPE
        SYNTAX     MacAddress
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                " The MAC address of a registered client."
        ::= { lesMacRegEntry 1 }

 lesMacRegAtmAddr OBJECT-TYPE
        SYNTAX     AtmLaneAddress
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                " The ATM address of the LEC that corresponds to the
                registered MAC address."
        ::= { lesMacRegEntry 3 }

 lesMacRegLecid OBJECT-TYPE
        SYNTAX     INTEGER (0001..65279) -- 0x0001 to 0xFFEF
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                "    The  LECID of   the   client  who registered  the
                designated MAC address."
        ::= { lesMacRegEntry 4 }

 lesRDRegTable OBJECT-TYPE
        SYNTAX     SEQUENCE OF LesRDRegEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                " A (conceptual) table of Route Descriptors registered
                with the LES by its clients."
        ::= { register 2 }

 lesRDRegEntry OBJECT-TYPE
        SYNTAX     LesRDRegEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION 
                " An entry (conceptual row) that denotes a registered
                Route Descriptor address and the ATM address that
                corresponds to it." 
        INDEX { lesElanName, lesIndex, lesRDRegSegmentId, lesRDRegBridgeNum } 
        ::= { lesRDRegTable 1 }

 LesRDRegEntry ::= SEQUENCE {
        lesRDRegSegmentId       INTEGER,
        lesRDRegBridgeNum       INTEGER,
        lesRDRegAtmAddr         AtmLaneAddress,
        lesRDRegLecid           INTEGER
 }

 lesRDRegSegmentId OBJECT-TYPE
        SYNTAX     INTEGER (0..4095)
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                " The segment ID of a registered client."
        ::= { lesRDRegEntry 1 }

 lesRDRegBridgeNum OBJECT-TYPE
        SYNTAX     INTEGER (0..15)
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                " The bridge number of a registered client going to
        the designated segment."
        ::= { lesRDRegEntry 2 }

 lesRDRegAtmAddr OBJECT-TYPE
        SYNTAX     AtmLaneAddress
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                " The ATM address of the LEC that corresponds to the
                registered Route Descriptor."
        ::= { lesRDRegEntry 3 }

 lesRDRegLecid OBJECT-TYPE
        SYNTAX     INTEGER (0001..65279) -- 0x0001 to 0xFFEF
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                "    The  LECID of   the   client  who registered  the
                designated Route Descriptor address."
        ::= { lesRDRegEntry 4 }

ciscoLesMIBConformance OBJECT IDENTIFIER ::= { ciscoLesMIB 2 }

ciscoLesMIBGroups OBJECT IDENTIFIER ::= { ciscoLesMIBConformance 1 }

ciscoLesMIBCompliances OBJECT IDENTIFIER ::= { ciscoLesMIBConformance 2 }

ciscoLesGroup OBJECT-GROUP
        OBJECTS   { lesAtmAddrSpec, lesAtmAddrMask, lesAtmAddrActual,
                    lesIfIndex, lesUpTime, lesLanType, lesMaxFrm,
                    lesJoinTimeout, lesControlDistVpi,
                    lesControlDistVci, lesOperStatus, lesAdminStatus,
                    lesStatus }
        STATUS    current
        DESCRIPTION
                " The core set of objects necessary to managing a LES."
        ::= { ciscoLesMIBGroups 1 }

ciscoLesStatsGroup OBJECT-GROUP
        OBJECTS    { lesInErrors, lesInErrorLastLec,
                     lesInFlushReplies, lesInJoinReqs,
                     lesOutJoinFails, lesJoinLastFailCause,
                     lesJoinLastFailLec, lesInRegisReqs,
                     lesOutRegisFails, lesRegisLastFailCause,
                     lesRegisLastFailLec, lesInUnregReqs,
                     lesInLearpUcasts, lesInLearpBroadcasts,
                     lesOutLearpFwd, lesInLearpResps, lesInNarpReqs,
                     lesInTopolReqs } 
        STATUS    current
        DESCRIPTION
                "    The  set    of   objects  containing  statistical
                information about a LES."
        ::= { ciscoLesMIBGroups 2 }

ciscoLesColocatedGroup OBJECT-GROUP
        OBJECTS   { lesColocBusAtmAddrSpec, lesColocBusAtmAddrMask,
                    lesColocBusAtmAddrActl } 
        STATUS    current
        DESCRIPTION
                " The objects needed to supported collocated LANE service
                components."
        ::= { ciscoLesMIBGroups 3 }

ciscoLesLecsGroup OBJECT-GROUP
        OBJECTS   { lesLecsAtmAddr, lesOutConfigReqs, lesInConfigResps, 
                    lesInConfigFails }
        STATUS    current
        DESCRIPTION
                " The objects necessary for those LES implementations that 
                use the LECS for LEC verification."
        ::= { ciscoLesMIBGroups 4 }

ciscoLesCntrlDistGroup OBJECT-GROUP
        OBJECTS   { lesControlDistVpi, lesControlDistVci }
        STATUS    current
        DESCRIPTION
                " The additional objects for LESs that support a point to
                multipoint control distribute VC."
        ::= { ciscoLesMIBGroups 5 }

ciscoLesSubIfGroup OBJECT-GROUP
        OBJECTS   { lesSubIfNum } 
        STATUS    current
        DESCRIPTION
                " For those implementations that wish to tie their LE service
                components to an particular sub-interface."
        ::= { ciscoLesMIBGroups 6 }

ciscoLesClientGroup OBJECT-GROUP
        OBJECTS   { lesClientAtmAddr, lesClientState, lesClientIfIndex,
                    lesClientControlVpi, lesClientControlVci, 
                    lesClientStatus,
                    lesMacRegAtmAddr, lesMacRegLecid }
        STATUS    current
        DESCRIPTION
                " A collection of objects used for inspecting the clients 
                requesting the attention/service of the LES."
        ::= { ciscoLesMIBGroups 7 }

ciscoLesTokenRingGroup OBJECT-GROUP
        OBJECTS    { lesSegmentID, lesRDRegAtmAddr, lesRDRegLecid }
        STATUS     current
        DESCRIPTION
                " A collection of objects used for managing LESs
                capable of emulated token rings."
        ::= { ciscoLesMIBGroups 8 }

ciscoLesMIBCompliance MODULE-COMPLIANCE
        STATUS current
        DESCRIPTION
                " The compliance statement for SNMP entities that support
                Cisco's LES MIB."
        MODULE -- this module
                MANDATORY-GROUPS   { ciscoLesGroup,
                                     ciscoLesStatsGroup,
                                     ciscoLesClientGroup }

                GROUP     ciscoLesSubIfGroup
                DESCRIPTION
                        " The group of objects necessary to allow multiple LANE
                        components to share a common ifIndex."

                GROUP     ciscoLesColocatedGroup
                DESCRIPTION
                        " The group of objects necessary to support a 
                        colocated BUS."

                GROUP     ciscoLesLecsGroup
                DESCRIPTION
                        " The group of objects necessary to support a LES
                        that utilizes the LECS for verification of JOIN
                        requests."
                
                GROUP     ciscoLesCntrlDistGroup
                DESCRIPTION
                        " The group of objects mandatory for a LES that 
                        utilizes a control distribute point to multipoint
                        VC with its clients."

                GROUP     ciscoLesTokenRingGroup
                DESCRIPTION
                        " The group of objects mandatory for a LES
                        that supports token ring emulation."

                OBJECT     lesStatus
                MIN-ACCESS not-accessible
                DESCRIPTION
                        " Those implementations that do not support
                        the creation of a LES remotely need not
                        implement the lesStatus object."

                OBJECT     lesSegmentID
                MIN-ACCESS read-only
                DESCRIPTION
                        " Later implementations of this object derive
                        the value from interaction with the LECS.
                        Consequently read-create access has been removed."

        ::= { ciscoLesMIBCompliances 1 }

END